package com.ybkj.daijia.server.mapper;

import com.ybkj.daijia.server.model.WeixinManager;
import java.math.BigDecimal;
import java.util.List;
import org.apache.ibatis.annotations.Param;

public interface WeixinManagerMapper {

    /**
     * 保存微信客户经理信息
     *
     * @param record
     * @return
     */
    int insertRecord(WeixinManager record);

    /**
     * 根据主键查询微信客户经理信息
     *
     * @param id
     * @return
     */
    WeixinManager selectByPrimaryKey(Long id);

    /**
     * 根据主键查询一组客户经理信息
     *
     * @param ids
     * @return
     */
    List<WeixinManager> selectByIdIn(Long ids[]);

    /**
     * 根据主键删除客户经理信息
     *
     * @param id
     * @return
     */
    int deleteByPrimaryKey(Long id);

    /**
     * 根据主键更新客户经理信息
     *
     * @param record
     * @return
     */
    int updateByPrimaryKey(WeixinManager record);

    /**
     * 根据微信用户查询微信客户经理
     *
     * @param wxuser
     * @return
     */
    WeixinManager selectByWxuser(@Param("wxuser") String wxuser);

    /**
     * 根据手机号查询微信客户经理信息
     *
     * @param phone
     * @return
     */
    WeixinManager selectByPhone(@Param("phone") String phone);

    /**
     * 根据身份证号查询微信客户经理信息
     *
     * @param idCard
     * @return
     */
    WeixinManager selectByIdCard(@Param("idCard") String idCard);

    /**
     * 分页查询所有微信客户经理信息
     *
     * @param offset
     * @param size
     * @return
     */
    List<WeixinManager> selectByPage(@Param("companyId") Long companyId,
        @Param("phone") String phone, @Param("name") String name,
        @Param("placeName") String placeName, @Param("idCard") String idCard,
        @Param("virtualType") Integer virtualType, @Param("offset") Integer offset,
        @Param("size") Integer size);

    /**
     * 统计所有微信客户经理信息
     *
     * @return
     */
    long countByPage(@Param("companyId") Long companyId, @Param("phone") String phone,
        @Param("name") String name, @Param("placeName") String placeName,
        @Param("idCard") String idCard, @Param("virtualType") Integer virtualType);

    /**
     * 根据公司查询微信客户经理信息
     *
     * @param companyId
     * @return
     */
    List<WeixinManager> selectByCompany(Long companyId);

    /**
     * 根据公司查询审核成功的微信客户经理信息
     *
     * @param companyId
     * @return
     */
    List<WeixinManager> selectOKByCompany(Long companyId);

    /**
     * 修改金额
     *
     * @param id
     * @param money
     */
    int updateVirtual(@Param("id") Long id, @Param("money") BigDecimal money);

}
